package com.dingding.activity.core.activity.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import com.dingding.activity.core.activity.dao.IActivityCacheDao;
import com.dingding.activity.core.activity.service.IActivityService;
import com.dingding.activity.core.activity.service.ICouponService;
import com.dingding.common.core.beans.Activity;

/**
 * 
 * @Description: 用户参加活动Service
 * 
 *               当用户行为发生变化时（注册、登录、成单等），可以根据活动规则参加活动。 当前类为参加活动具体实现类
 * 
 * @author CHEHUANBO
 * @date 2016年12月6日
 * 
 */
@Component("_activityService")
public class ActivityServiceImpl implements IActivityService {

	@Resource(name = "activityCacheDao")
	private IActivityCacheDao activityCacheDao;

	@Resource(name = "_couponService")
	private ICouponService couponService;

	/**
	 * 
	 * 用户参加活动触发方法 当用户在app端行为发生变化时（注册、登录、成单等），即可触发此方法
	 * 
	 * @param userId
	 *            用户ID
	 * 
	 * @author CHEHUANBO
	 * @date 2016-12-07
	 * 
	 * 
	 */
	@Override
	public void joinActivityService(String userId) throws RuntimeException{

		// 获取所有的有效活动
		List<Activity> activitieList = activityCacheDao.getAllActivityToCache();

		if (activitieList != null && activitieList.size() > 0) {

			for (Activity activity : activitieList) {

				int activityType = activity.getActivityTypeId();

				switch (activityType) {

				case 1: // 优惠券
					
					couponService.grantCoupon(activity.getSnId(), userId);
					
					continue;

				default: // 其它

					break;

				}

			}

		}

	}

}
